package com.ms.service.inter;

import com.ms.entity.Volunteer;
import java.util.List;

/**
 * 志愿者服务接口 - 定义志愿者相关的业务逻辑
 */
public interface VolunteerService {

    /**
     * 保存志愿者申请
     * @param volunteer 志愿者对象
     * @return 保存结果
     */
    boolean save(Volunteer volunteer);

    /**
     * 根据ID查找志愿者申请
     * @param volunteerID 志愿者ID - 修改：改为 Integer
     * @return 志愿者对象
     */
    Volunteer findById(Integer volunteerID);

    /**
     * 根据用户ID查找志愿者申请
     * @param userID 用户ID
     * @return 志愿者对象
     */
    Volunteer findByUserId(Integer userID);

    /**
     * 获取所有志愿者申请
     * @return 志愿者申请列表
     */
    List<Volunteer> findAll();

    /**
     * 更新志愿者申请
     * @param volunteer 志愿者对象
     * @return 更新结果
     */
    boolean update(Volunteer volunteer);

    /**
     * 删除志愿者申请
     * @param volunteerID 志愿者ID - 修改：改为 Integer
     * @return 删除结果
     */
    boolean delete(Integer volunteerID);

    /**
     * 根据用户ID删除志愿者申请
     * @param userID 用户ID
     * @return 删除结果
     */
    boolean deleteByUserId(Integer userID);

    /**
     * 检查用户是否已经提交过志愿者申请
     * @param userID 用户ID
     * @return 是否已申请
     */
    boolean hasUserApplied(Integer userID);
}